2  Cadena o string

Las cadenas son una secuencia de caracteres encerrados entre comillas simples, dobles o triples o comillas dobles triples.

# Ejemplos de codificación
cadena1 = 'Esta es una cadena entre comillas simples'
cadena2 = "Esta es una cadena entre comillas dobles"



# Mostrar resultados
print(cadena1)
[1] "Esta es una cadena entre comillas simples"
print(cadena2)
[1] "Esta es una cadena entre comillas dobles"

2.1 Accediendo a componentes de cadena

# cadenas
lenguaje <- "Rstudio"
# Imprimir resultados
cat("lenguaje[1] => ", substr(lenguaje, 1, 1), "\n")
lenguaje[1] =>  R 
cat("lenguaje[nchar(lenguaje)] => ", substr(lenguaje, nchar(lenguaje), nchar(lenguaje)), "\n")
lenguaje[nchar(lenguaje)] =>  o 
lenguaje <- "Rstudio"
letra_s <- substr(lenguaje, start = 2, stop = 2)
letra_s
[1] "s"

2.2 Concatenación de cadenas

# Concatenando dos cadenas
cadena1 <- "Hola"
cadena2 <- "R"
cadena3 <- paste(cadena1, cadena2, sep = " ") # Concatenando dos cadenas con un espacio en medio

cat("La cadena concatenada es:", cadena3)
La cadena concatenada es: Hola R

2.2.1 Operaciones de cadena y métodos integrados.

# a. toupper(): Convierte una cadena en mayúsculas.
cadena1 <- "la casa amarilla"
mayusculas <- toupper(cadena1)  
mayusculas
[1] "LA CASA AMARILLA"
# b. tolower(): Convierte una cadena en minúsculas.
cadena2 <- "EJEMPLO DE TEXTO"
minusculas <- tolower(cadena2)
minusculas
[1] "ejemplo de texto"
# c. str_to_title() (simulado en R):
cadena3 <- "ejemplo de título"
palabras <- unlist(strsplit(cadena3, " "))
palabras <- paste0(toupper(substring(palabras, 1, 1)), substring(palabras, 2))
titulo <- paste(palabras, collapse = " ") 
titulo
[1] "Ejemplo De Título"
# d. strsplit(): Divide una cadena en partes basadas en un delimitador.
cadena4 <- "manzana,pera,uva"
partes <- unlist(strsplit(cadena4, ","))
partes
[1] "manzana" "pera"    "uva"    
# e. str_trim() (simulado en R):
cadena5 <- "   espacios alrededor   "
cadena_sin_espacios <- trimws(cadena5) 
cadena_sin_espacios
[1] "espacios alrededor"
## f. str_trim() (simulado en R):
cadena6 <- "espacios a la derecha   "
cadena_sin_espacios_derecha <- trimws(cadena6, "right") 
cadena_sin_espacios_derecha
[1] "espacios a la derecha"
# g. str_trim() (simulado en R):
cadena7 <- "   espacios a la izquierda"
cadena_sin_espacios_izquierda <- trimws(cadena7, "left")
cadena_sin_espacios_izquierda
[1] "espacios a la izquierda"
# h. nchar(): Devuelve la cantidad de caracteres en una cadena.
cadena8 <- "Ejemplo"
longitud <- nchar(cadena8) 
longitud 
[1] 7
# i. gsub() o sub(): Reemplaza una subcadena por otra.
cadena9 <- "Ejemplo de reemplazo"
reemplazo <- gsub("reemplazo", "cambio", cadena9)
reemplazo 
[1] "Ejemplo de cambio"
# ii. grep(): Encuentra patrones en una cadena y devuelve sus índices.
cadena10 <- c("manzana", "pera", "uva")
indice <- grep("pera", cadena10)
indice
[1] 2
# j. startsWith(): Verifica si una cadena comienza con un cierto prefijo.
cadena11 <- "Hola, mundo"
comienza_con_hola <- startsWith(cadena11, "Hola")   # TRUE
comienza_con_hola
[1] TRUE
# k. endsWith(): Verifica si una cadena termina con un cierto sufijo.
cadena12 <- "Hola, mundo"
termina_con_mundo <- endsWith(cadena12, "mundo") # TRUE
termina_con_mundo
[1] TRUE
# l. grepl(): Verifica si un patrón está presente en una cadena y devuelve TRUE o FALSE.
cadena13 <- "12345"
contiene_digitos <- grepl("[0-9]", cadena13)
contiene_digitos
[1] TRUE
# ll. grepl(): Verifica si una cadena contiene solo dígitos decimales.
cadena14 <- "123.45"
contiene_solo_digitos <- grepl("^\\d+(\\.\\d+)?$", cadena14) 
contiene_solo_digitos 
[1] TRUE
# m. grepl(): Verifica si una cadena contiene solo letras alfabéticas.
cadena15 <- "Texto"
contiene_solo_letras <- grepl("^[A-Za-z]+$", cadena15)
contiene_solo_letras
[1] TRUE
# n. grepl(): Verifica si una cadena está en minúsculas.
cadena16 <- "texto en minúsculas"
esta_en_minusculas <- grepl("^[a-z]+$", cadena16)
esta_en_minusculas
[1] FALSE
# o. grepl(): Verifica si una cadena está en mayúsculas.
cadena17 <- "TEXTO EN MAYÚSCULAS"
esta_en_mayusculas <- grepl("^[A-Z]+$", cadena17) 
esta_en_mayusculas 
[1] FALSE
# p. grepl(): Verifica si una cadena contiene solo caracteres alfanuméricos.
cadena18 <- "Texto123"
contiene_alnum <- grepl("^[A-Za-z0-9]+$", cadena18) 
contiene_alnum 
[1] TRUE